package com.cd2cd.code_template.configuration.security.loginUserService;

import com.cd2cd.code_template.configuration.security.TokenUser;
import lombok.SneakyThrows;

/**
 * 
 */
public interface LoadUserService {

    /**
     * 1、系统管理后，系统置配使用，固定账号，一般技术人员对系统进行配置使用，使用对象：程序员，运维人员 <br>
     * 2、
     */

    interface LoginTypeUser { <T extends TokenUser> T loadUserByUsername(String username); }

    interface SysAdmin extends LoginTypeUser { } // 系统管理后
    interface Backend extends LoginTypeUser { } // 后台管理员
    interface Customer extends LoginTypeUser { } // 后台会员客户
    interface Api extends LoginTypeUser { } // api用户
    interface App extends LoginTypeUser { } // 客户端app

    @SneakyThrows
    static Class<?> getClassByName(String name) {
        return Class.forName(LoadUserService.class.getName()+"$"+name);
    }

    public static void main(String[] args) {
        System.out.println(getClassByName("SysAdmin"));
    }
}
